"""
项目配置文件
管理环境变量和配置项
"""

# 导入操作系统相关模块
import os
# 导入dotenv用于加载环境变量
from dotenv import load_dotenv

# 加载环境变量
load_dotenv()

class Config:
    """
    配置类
    定义项目的所有配置项
    """
    
    # 数据库配置
    MYSQL_USER = os.getenv('MYSQL_USER', 'root')           # MySQL用户名
    MYSQL_PASS = os.getenv('MYSQL_PASS', 'password')       # MySQL密码
    MYSQL_HOST = os.getenv('MYSQL_HOST', 'localhost')      # MySQL主机
    MYSQL_PORT = os.getenv('MYSQL_PORT', '3306')           # MySQL端口
    MYSQL_DB = os.getenv('MYSQL_DB', 'immune_data_platform')  # MySQL数据库名
    
    # 数据库连接字符串
    SQLALCHEMY_DATABASE_URI = (
        f"mysql+pymysql://{MYSQL_USER}:{MYSQL_PASS}"
        f"@{MYSQL_HOST}:{MYSQL_PORT}/{MYSQL_DB}"
        "?charset=utf8mb4"
    )
    
    # JWT配置
    SECRET_KEY = os.getenv('SECRET_KEY', '5v33tK3yF0rJWTt0k3nS1gn1ngW1thHSM256Alg0r1thm')  # 密钥
    ALGORITHM = "HS256"                                      # JWT算法
    ACCESS_TOKEN_EXPIRE_MINUTES = 30                         # 访问令牌过期时间（分钟）
    
    # 跨域配置
    BACKEND_CORS_ORIGINS = ["http://localhost:5000"]  # CORS允许的源
    
    # 文件上传配置
    UPLOAD_FOLDER = os.getenv('UPLOAD_FOLDER', './uploads')     # 上传文件夹
    MAX_FILE_SIZE = int(os.getenv('MAX_FILE_SIZE', 1024 * 1024 * 100))  # 最大文件大小（100MB）
    
    # AI服务配置
    AI_API_KEY = os.getenv('AI_API_KEY', '')      # AI API密钥
    AI_API_BASE = os.getenv('AI_API_BASE', 'https://api.openai.com/v1')  # AI API基础URL